package com.lzy.imagepicker.util;

import ohos.aafwk.ability.Ability;
import ohos.agp.window.service.Display;
import ohos.agp.window.service.DisplayManager;
import ohos.app.Context;

/**
 * ================================================
 * 作    者：jeasonlzy（廖子尧 Github地址：https://github.com/jeasonlzy0216
 * 版    本：1.0
 * 创建日期：2016/5/19
 * 描    述：
 * 修订历史：
 * ================================================
 */
public class Utils {
//    public static int getStatusHeight(Context context) {
//        int statusHeight = -1;
//        try {
//            Class<?> clazz = Class.forName("com.ohos.internal.R$dimen");
//            Object object = clazz.newInstance();
//            int height = Integer.parseInt(clazz.getField("status_bar_height").get(object).toString());
//            statusHeight = context.getResources().getDimensionPixelSize(height);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return statusHeight;
//    }

    /**
     * 根据屏幕宽度与密度计算GridView显示的列数， 最少为三列，并获取Item宽度
     * @param ability 上下文对象
     * @return 图片宽度
     */
    public static int getImageItemWidth(Ability ability) {

        DisplayManager displayManager = DisplayManager.getInstance();
        Display display = displayManager.getDefaultDisplay(ability).get();

        int screenWidth = display.getAttributes().width;
        int densityDpi = display.getAttributes().densityDpi;
        int cols = screenWidth / densityDpi;
        cols = Math.max(cols, 3);
        int columnSpace = (int) (2 * display.getAttributes().densityPixels);
        return (screenWidth - columnSpace * (cols - 1)) / cols;
    }

    /**
     * 获取导航栏高度，有些没有虚拟导航栏的手机也能获取到，建议先判断是否有虚拟按键
     * @param mContext 上下文对象
     * @param vp 需要转换的vp值
     * @return 转换完成的vp
     */
    public static int vp2px(int vp, Context mContext) {

        return mContext.getResourceManager().getDeviceCapability().screenDensity / 160 * vp;
    }


    public static void getScreenSize(Context context) {
        System.out.println(context);
    }
}
